home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
gnu
/
nethack.lha
/
nethack-3.1
/
include
/
vision.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-15
|
2KB
|
50 lines
/* SCCS Id: @(#)vision.h 3.1 92/11/14 */
/* Copyright (c) Dean Luick, with acknowledgements to Dave Cohrs, 1990. */
/* NetHack may be freely redistributed. See license for details. */
#ifndef VISION_H
#define VISION_H
#if 0 /* (moved to decl.h) */
extern boolean vision_full_recalc; /* TRUE if need vision recalc */
extern char **viz_array; /* could see/in sight row pointers */
extern char *viz_rmin; /* min could see indices */
extern char *viz_rmax; /* max could see indices */
#endif
#define COULD_SEE 0x1
#define IN_SIGHT 0x2
/*
* cansee() - Returns true if the hero can see the location.
*
* couldsee() - Returns true if the hero has a clear line of sight to
* the location.
*/
#define cansee(x,y) (viz_array[y][x] & IN_SIGHT)
#define couldsee(x,y) (viz_array[y][x] & COULD_SEE)
/*
* The following assume the monster is not blind.
*
* m_cansee() - Returns true if the monster can see the given location.
*
* m_canseeu() - Returns true if the monster could see the hero. Assumes
* that if the hero has a clear line of sight to the monster's
* location and the hero is visible, then monster can see the
* hero.
*/
#define m_cansee(mtmp,x2,y2) clear_path((mtmp)->mx,(mtmp)->my,(x2),(y2))
#define m_canseeu(m) ((!Invis || perceives((m)->data)) && !Underwater ? \
couldsee((m)->mx,(m)->my) : 0)
/*
* Circle information
*/
#define MAX_RADIUS 15 /* this is in points from the source */
/* Use this macro to get a list of distances of the edges (see vision.c). */
#define circle_ptr(z) (&circle_data[circle_start[z]])
#endif /* VISION_H */